<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>Crafting Interpreters</title>
<!-- Tell mobile browsers we're optimized for them and they don't need to crop
     the viewport. -->
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" type="text/css" href="index.css" />

<!-- Oh, God, Source Code Pro is so beautiful it makes me want to cry. -->
<link href='http://fonts.googleapis.com/css?family=Source+Code+Pro:400|Source+Sans+Pro:300,400,600' rel='stylesheet' type='text/css'>
<link rel="icon" type="image/png" href="image/favicon.png" />

<!-- Google analytics -->
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-42804721-2', 'auto');
  ga('send', 'pageview');
</script>

</head>
<body>

<!-- <div class="scrim"></div> -->

<article>

<a href="contents.html"><img src="image/logotype.png" title="Crafting Interpreters" class="logotype"></a>

<main>
<blockquote>A handbook for making programming languages.</blockquote>

<p>This book contains everything you need to implement a full-featured,
efficient scripting language. You&#8217;ll learn both high-level concepts around
parsing and semantics and gritty details like bytecode representation and
garbage collection. Your brain will light up with new ideas, and your hands will
get dirty and calloused. It&#8217;s gonna be a blast.</p>

<p>Starting from <code>main()</code>, you&#8217;ll build a language that
features rich syntax, dynamic typing, garbage collection, lexical scope,
first-class functions, closures, classes, and inheritance. All packed into a few
thousand lines of clean, fast code that you will thoroughly understand because
you wrote each one yourself.</p>

<p>You can read the whole book, for free, online:</p>

<p class="center">
<a class="button" href="contents.html">Start Reading!</a>
</p>

<h2>What&#8217;s the Catch?</h2>

<p>The only wrinkle is that I haven&#8217;t <em>quite</em> finished writing it.
I&#8217;m publishing it a chapter at a time, sort of like &ldquo;Great
Expectations&rdquo; but with less grim Victorian poverty and better code
samples. Since I can&#8217;t deliver chapters right to your doorstep, you may
want to join the mailing list so you&#8217;ll know when the next piece is
ready:</p>

<div class="sign-up">
  <!-- Begin MailChimp Signup Form -->
  <div id="mc_embed_signup">
  <form action="//gameprogrammingpatterns.us7.list-manage.com/subscribe/post?u=0952ca43ed2536d6717766b88&amp;id=6e96334109" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
    <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="Your email address" required>
    <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
    <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_0952ca43ed2536d6717766b88_6e96334109" tabindex="-1" value=""></div>
    <input type="submit" value="Sign me up!" name="subscribe" id="mc-embedded-subscribe" class="button">
  </form>
  </div>
  <!--End mc_embed_signup-->
  <p class="small">(I post about once a month. Don&#8217;t worry, I won&#8217;t spam you.)</p>
</div>

<h2>Who Are You?</h2>

<p>I&#8217;m Bob Nystrom. I got bitten by the language bug eight years ago when
I was on paternity leave with a lot of free time between middle of the night
feedings. Since then, I've cobbled together a <a href="http://wren.io/"
target="_blank">number</a> <a href="http://magpie-lang.org/"
target="_blank">of</a> <a href="http://finch.stuffwithstuff.com/"
target="_blank">languages</a> <a href="https://github.com/munificent/vigil"
target="_blank">of</a> <a href="https://github.com/munificent/jasic"
target="_blank">various</a> <a href="https://github.com/munificent/lark"
target="_blank">ilk</a> before worming my way into an honest-to-God full-time
programming language job. Today, I work at Google on the <a href="http://dartlang.org/"
target="_blank">Dart language</a>.</p>

<p>Before I fell in love with languages, I was a game developer for eight years
at Electronic Arts. I wrote the best-selling book &ldquo;<a
href="http://gameprogrammingpatterns.com/" target="_blank">Game Programming
Patterns</a>&rdquo; based on what I learned there. Like this one, you can read
it for free too, because I love you.</p>

<p>If you want to get in touch with me, you can email <code>bob</code> at this
site or just ask me (<a
href="https://twitter.com/intent/user?screen_name=munificentbob"
target="_blank"><code>@munificentbob</code></a>) on twitter. If you just
can&#8217;t get enough of my writing, I also have <a
href="http://journal.stuffwithstuff.com/" target="_blank">a blog</a>. If you
like the book, you&#8217;ll probably like it too.</p>

</main>
</article>
</body>
</html>